The invention relates generally to digital communication, and deals more particularly with a technique for header compression within a digital communication.
Digital communication is well known today between clients and servers where the client can be a desktop or laptop computer, personal digital assistant (“PDA”), cell phone, device instrumentation, and sophisticated equipment. There are several well known communication protocols such as Simple Object Access Protocol (“SOAP”), TCP/IP, HTTP, and SMTP. Typically, the communication comprises a payload and a header. The header may include routing instructions (such as a destination address), name of an originating client, service or document, date, security instructions, security credentials, encryption methodology, etc. The payload can be a database object of an object oriented database, other file data, a request to read or write data, a request for a web page, executable commands, etc. The header and payload are contained by and constitute an “envelope”. The length of each message affects the bandwidth/transmission time required for the transmission.
For certain types of communications, such as transfers of large documents from a desk top or lap top personal computer to a server computer using HTTP protocol, the header is a relatively small portion of each message, and therefore is not burdensome to transmit. However, in other types of communications, such as from a PDA, cell phone, device instrumentation to a server using SOAP, the header consumes a relatively large portion of each message and therefore, is burdensome to transmit. Multiple messages from a client to a server may include a similar header for each message, particularly if the messages occur during the same session or are otherwise related. For example, if the messages are all part of same unit of work, they will all likely have the same encryption key, routing originating device, date, etc. As another example, different messages from a PDA or cell phone to a server occurring during the same session are considered related and may include a similar header. As another example, the transfer of a large file using SOAP may be accomplished using multiple, related messages with similar headers. The headers may differ only in a sequence number for the message, time stamp and document originator. There are known techniques to compress a message header.
Published US Patent Applications 2002/0129167 A1 and 2002/0129168 A1 disclose a header compression technique. Headers are named, and cached at both the client and server. When a message is sent with a new header, its name/ID is sent instead of the full header along with a list of differences from the named header. The differences are based on a byte-by-byte comparison of the new header versus the named header. With the reference header name and list of differences, the server can reconstruct the full header.
Published US Patent Application 2003/0013431 A1 discloses another header compression technique. A header is sent from a client to a server, and cached at both the client and the server. Subsequently, the client prepares another message with a header where the fields that differ from the previously sent header are left blank; the changed fields are included in the header. Upon receipt at the server, the server fills in the blank fields from the previously cached header.
While the foregoing header compression techniques are viable and efficient in some situations, they may not be viable and efficient in others.
Accordingly, an object of the present invention is to provide a header compression and analysis technique which considers the viability and efficiency of header compression.